package com.lvy.hczn.front.system.domain.business;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lvy.hczn.front.common.core.domain.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

@Data
@TableName("sort_task_detail")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "分拣任务详情")
public class SortTaskDetail extends BaseModel<SortTaskDetail> {

    @ApiModelProperty(value = "分拣任务")
    private String sortTaskId;

    @ApiModelProperty(value = "销售单编号")
    private String saleOrderCode;

    @ApiModelProperty(value = "销售单详情主键")
    private String saleOrderDetailId;

    @ApiModelProperty(value = "原料")
    private String spuId;

    @ApiModelProperty(value = "sku")
    private String skuCode;

    @ApiModelProperty(value = "规格")
    private String specCode;

    @ApiModelProperty(value = "商品编号")
    private String goodsCode;

    @ApiModelProperty(value = "溯源码（可用于分拣订单箱扫描商品入库，需要每个打包的物品都扫描）或者不用溯源码，直接扫临时存储的货架二维码，存储当前货架的摆放物品（此方式需要分拣员不能放错物品）")
    private String traceCode;

    @ApiModelProperty(value = "供应商")
    private String supplierCode;

    @ApiModelProperty(value = "生产商")
    private String producerId;

    @ApiModelProperty(value = "批次编号，当批次存在时，只分拣同批次原料")
    private String batchCode;

    @ApiModelProperty(value = "分拣存放的临时货位")
    private String shelfLocation;

    @ApiModelProperty(value = "配送员")
    private String deliveryClerk;

    @ApiModelProperty(value = "配送区域")
    private String deliveryArea;

    @ApiModelProperty(value = "经度(后期需要)")
    private BigDecimal longitude;

    @ApiModelProperty(value = "纬度(后期需要)")
    private BigDecimal latitude;

    @ApiModelProperty(value = "数量")
    private Integer quantity;

    @ApiModelProperty(value = "已分拣数量")
    private Integer sortQuantity;

    @ApiModelProperty(value = "单位")
    private String unit;

    @ApiModelProperty(value = "销售重量")
    private BigDecimal weight;

    @ApiModelProperty(value = "体积")
    private BigDecimal volume;

    @ApiModelProperty(value = "已分拣重量")
    private BigDecimal sortWeight;

    @ApiModelProperty(value = "包装袋ID")
    private String packId;

    @ApiModelProperty(value = "状态 0待分拣,1正在分拣,2已分拣 3已退货 4分拣欠发 5异常分拣")
    private String status;

    @ApiModelProperty(value = "材料加工方式")
    private String materialProcessId;

    @ApiModelProperty(value = "是否整箱分拣出库 0：否  1：是")
    private boolean fullGoodsBox;

    @ApiModelProperty(value = "分拣类型：1、销售订单分拣；2、调拨订单分拣；3、调拨包裹分拣")
    private Integer detailType;

    @ApiModelProperty(value = "商品条码")
    private String barCode;

    @ApiModelProperty(value = "原料")
    @TableField(exist = false)
    private String spuName;

    @ApiModelProperty(value = "商品名称")
    @TableField(exist = false)
    private String goodsName;

    @ApiModelProperty(value = "商品主图")
    @TableField(exist = false)
    private String imgUrl;

    @ApiModelProperty(value = "商品编码")
    @TableField(exist = false)
    private String spuCode;

    @ApiModelProperty(value = "分拣计算货箱可分拣份数")
    @TableField(exist = false)
    private Integer countQuantity;

    @ApiModelProperty(value = "是否大件，0：否，1：是")
    @TableField(exist = false)
    private Integer bigProduct;

    @ApiModelProperty(value = "是否标品，0：否；1：是")
    @TableField(exist = false)
    private Integer standard;

    @ApiModelProperty(value = "温区名称")
    @TableField(exist = false)
    private String temperatureZoneName;

    @ApiModelProperty(value = "包裹温区")
    @TableField(exist = false)
    private String temperatureId;
}
